package com.qin.service;

import java.util.List;

import com.qin.entity.Shopping;

/**
 * 购物车服务接口
 * @author BestRiven
 *
 */
public interface ShoppingService {

	/**
	 * 增加一条购物车记录
	 * @param shopping
	 * @return
	 */
	public Long insertShopping(Shopping shopping);
	
	/**
	 * 增加一条购物车记录增强版，不会产生重复的用户和图书下的购物车记录<P/>
	 * 返回值是大于0时，如1，则代表返回的是自增主键<BR/>
	 * 返回值是等于0时，则代表找到重复的购物车记录，并覆盖购物车记录消息<BR/>
	 * 返回值是-1时，代表失败<BR/>
	 * @param shopping 要插入的购物车记录
	 * @param uid 用户id
	 * @param bid 图书id
	 * @return
	 */
	public Long insertShoppingPlus(Shopping shopping,Long uid,Long bid);
	
	/**
	 * 逻辑删除一条购物车记录
	 * @param id
	 * @return
	 */
	public int logicDeleteShopping(Long id);
	
	/**
	 * 修改购物车信息，只允许修改图书的数量
	 * @param id
	 * @param num 图书数量
	 * @return
	 */
	public int updateShopping(Long id,Integer num);
	
	
	/**
	 * 通过购物车id查询购物车
	 * @param id
	 * @return
	 */
	public Shopping getShoppingById(Long id);
	
	/**
	 * 通过用户id和图书id查询购物车记录
	 * @param uid 用户id
	 * @param bid 图书id
	 * @return
	 */
	public Shopping queryShoppingByUserAndBook(Long uid,Long bid);
	
	/**
	 * 通过用户的id查出所有购物车记录
	 * @param id 用户id
	 * @return 所有订单
	 */
	public List<Shopping> getShoppingItemsByUserId(Long id);
}
